//package cn.itcast.gateway.filter;
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.cloud.gateway.filter.GatewayFilterChain;
//import org.springframework.cloud.gateway.filter.GlobalFilter;
//import org.springframework.http.HttpStatus;
//import org.springframework.stereotype.Component;
//import org.springframework.web.server.ServerWebExchange;
//import reactor.core.publisher.Mono;
//
//
///**
// * @author ShiZhe
// * @create 2020-12-18 9:57
// */
//@Slf4j
//@Component
//public class ServicePublishGlobalFilter implements GlobalFilter {
//
//    @Override
//    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
//
//        //获取参数contractpublishstep
//        String steps = exchange.getRequest().getQueryParams().getFirst("contractpublishstep");
//
//        //判断是否存在
//        if(steps == null) {
//            //3.如果不存在 : 认证失败
//            System.out.println("缺少合约发布步骤参数，请添加！");
//            exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
//            return exchange.getResponse().setComplete(); //请求结束
//        }
//
//        //将字符串装换为int
//        int step = Integer.parseInt(steps);
//
//        //根据参数的值执行相应的步骤
//        /**
//         * step==1时，即服务提供商向Eureka注册平台发送服务注册信息，网关拦截后，向合约平台转发服务的相关信息，即步骤2
//         * step==3时，即服务提供商向Eureka注册平台发送服务授权信息，网关拦截后，向合约平台转发服务的授权结果，即步骤4
//         * step==5时，即服务提供商向Eureka注册平台发送服务发布请求，网关拦截后，向合约平台询问是否符合发布结果，即步骤6
//         * step==7时，即合约平台向Eureka注册平台发送服务是否可以发布结果，网关拦截后，向Vue前端转发服务是否可以发布结果，即步骤8
//         */
//        if(step == 1){
//
//        }
//        //继续执行
//        return chain.filter(exchange); //继续向下执行
//    }
//}